[Design pattern]: 设计模式相关系列
介绍
概念: 由对象来生成新的对象,而不是用类类型或其他方式.
使用场景: 需要对象克隆时
特点: 参数复制了,不用再初始化数据
原型模式在C++等其他语言中运用较广,JAVA有Object的clone方法,所以使用起来比较简单
假如Object中没有clone方法,怎么来实现原型模式?
CODE
首先创建对象实体 基类
1 | package note.com.bean; |
子类
1 | package note.com.bean; |
测试类
1 | package note.com.prototype; |
结果
1 | note.com.bean.Prototype1@659e0bfd |
可得,对象已经是新的对象,但内容是相同的.
使用JAVA的clone方法以后可以这么写,或者不重写clone方法,直接使用
CODE
子类
1 | package note.com.bean; |
注意:Object中的clone是浅克隆,如果想使用深克隆,就要自定义clone方法了(利用序列化实现深克隆属性)
克隆方法
1 | public Object deepClone(Object o) throws IOException, ClassNotFoundException{ |